package com.rc.web.service.impl;

import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.stp.StpUtil;
import com.rc.pojo.po.User;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Sa-Token权限认证服务实现类
 * 实现StpInterface接口，提供权限和角色相关功能
 */
@Service
public class StpServiceImpl implements StpInterface {

    /**
     * 获取权限列表
     * @param o 登录ID
     * @param s 登录类型
     * @return 权限列表
     */
    @Override
    public List<String> getPermissionList(Object o, String s) {
        return null;
    }

    /**
     * 获取角色列表
     * @param o 登录ID
     * @param s 登录类型
     * @return 角色列表
     */
    @Override
    public List<String> getRoleList(Object o, String s) {
        // 从会话中获取用户信息
        User user = StpUtil.getSession().getModel("user", User.class);

        // 如果用户为空，说明是未登录用户或普通顾客
        if (user == null){
            return List.of("consumer");
        }

        // 返回用户的角色描述
        return List.of(user.getRole().getDesc());
    }
}
